package com.le.test;

import java.util.Stack;

/**
 * 题目描述
 * 给出一个仅包含字符'(',')','{','}','['和']',的字符串，判断给出的字符串是否是合法的括号序列
 * 括号必须以正确的顺序关闭，"()"和"()[]{}"都是合法的括号序列，但"(]"和"([)]"不合法。
 */
public class Code_05_StringBrackets {
    /**
     *
     * @param s string字符串
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        Stack<Character> c = new Stack<Character>();
        for(int i = 0 ; i < s.length(); i++){
            if(c.empty()){
                c.push(s.charAt(i));
                continue;
            }
            if(s.charAt(i)== ')' && c.peek() == '(') {
                c.pop();
            }
            else if(s.charAt(i)=='}' &&c.peek()== '{'){
                c.pop();
            }
            else if(s.charAt(i)==']'&&c.peek()=='['){
                c.pop();
            }
            else{
                c.push(s.charAt(i));
            }
        }
        return c.empty();
    }
}
